import { fstat } from "fs";

// const buf1 = Buffer.alloc(10)

// const buf2 = Buffer.alloc(10, 255)

// const buf5 = Buffer.from('tést');

// // console.log(buf1);
// // console.log(buf2);
// console.log(buf5);

// const buf = Buffer.from('hello', 'ascii')

// console.log(buf);
// console.log(buf.toString('ascii'));
// console.log(buf.toString('utf8'));
// console.log(buf.toString('utf16le'));
// console.log(buf.toString('base64'));
// console.log(buf.toString('latin1'));
// console.log(buf.toString('hex'));

// const typedArray1 = new Int8Array(8)
// typedArray1[0] = 32

// const typedArray2 = new Int8Array(typedArray1);
// typedArray2[1] = 42;

// console.log(typedArray1);

// console.log(typedArray2);
// typedArray1[0] = 13

// console.log(typedArray1);
// console.log(typedArray2);

// const arry1 = new Int8Array(Buffer.from('A', 'ascii'))

// console.log(arry1);

// const arry1 = Buffer.from([256, 255])

// for(let a of arry1){
//     console.log(a);
// }

// const buf = Buffer.alloc(5).fill('a')
// console.log(buf);

// const buf1 = Buffer.allocUnsafe(10).fill(0)
// console.log(buf1);

// const str = '\u00bd + \u00bc = \u00be';

// console.log(`${str}: ${str.length} 个字符, ` +
//             `${Buffer.byteLength(str, 'utf16le')} 个字节`);
// // 打印: ½ + ¼ = ¾: 9 个字符, 12 个字节

// const buf1 = Buffer.alloc(1).fill(1)
// const buf2 = Buffer.alloc(2).fill(2)
// const buf3 = Buffer.alloc(3).fill(3)

// const buf = Buffer.concat([buf1, buf2, buf3], 6)
// console.log(buf);

// const buf1 = Buffer.from('太uffer')
// const buf2 = Buffer.from(buf1)

// buf1[0] = 0x61
// console.log(buf1.toString());
// console.log(buf1.length);
// console.log(buf2.toString());

// const buf = Buffer.from(new String('this is a test'))

// console.log(buf);

// const obj = {
//     [Symbol.toPrimitive](hint){
//         if(hint === 'number'){
//             return 10
//         }else if(hint === 'boolean'){
//             return true
//         }else{
//             return 'string'
//         }
//     }
// }

// console.log(!!obj);
// console.log(+obj);
// console.log(obj+'');

// class Foo{
//     [Symbol.toPrimitive](hint){
//         return 'abc'
//     }
// }

// const buf = Buffer.from(new Foo(), 'utf8')
// console.log(buf);

// const buf1 = Buffer.from('this is a tést');
// const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex');

// console.log(Buffer.isBuffer(buf1));
// console.log(Buffer.isEncoding('utf8'));
// console.log(Buffer.poolSize);

// const str = 'http://nodejs.cn/';
// const buf = Buffer.allocUnsafe(str.length)

// for (let i = 0; i < str.length; i++) {
//     buf[i] = str.charCodeAt(i);
// }
// console.log(buf.toString('ascii'));

// const arrayBuffer = new ArrayBuffer(16)
// const buffer = Buffer.from('aaa');
// console.log(buffer.buffer);
// console.log(Buffer.poolSize);


// const buf1 = Buffer.alloc(26)
// const buf2 = Buffer.alloc(26).fill('!')

// for(let i = 0; i <buf1.length; i++){
//     buf1[i] = i + 97
// }

// buf1.copy(buf2, 8, 0, 5)

// console.log(buf2.toString());

// const buf = Buffer.from('buffer')

// for(let pair of buf.values()){
//     console.log(pair);
// }

// const buf = Buffer.alloc(26).fill('i', 3, 5)
// console.log(buf);
// const buf = Buffer.alloc(5).fill('da','hex')
// console.log(buf);

// const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff])
// console.log(buf.readBigUInt64BE(0));

// const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4])

// console.log(buf1);
// console.log(buf1.swap16());

// const buf = Buffer.from([0xa1, 0x2, 0x3, 0x4])
// const json = JSON.stringify(buf)

// console.log(json);

// const copy = JSON.parse(json, (key, value) => {
//     return value && value.type === 'Buffer' ?
//       Buffer.from(value.data) :
//       value;
//   });
  
//   console.log(copy);

